// random


module random (input clk,
               rst_n,
               enable,
               output wire out);
    
    reg [5:0]	shift_reg;
    parameter SEED = 6'b100001; //起始随机种子
    
    always@(posedge clk or negedge rst_n)
    begin
        if (!rst_n) begin
            shift_reg <= SEED; //将shift_reg赋值成SEED
        end
        else begin // y=x^6+x+1
            shift_reg[5] <= shift_reg[0] ^ shift_reg[5];
            shift_reg[4:0] <= shift_reg[5:1];
        end
    end
    assign out = enable? shift_reg[0] : 1'b0;
endmodule
